package vwg.na.vwm.rh.motorsdk.modelo.procesos;

import java.io.Serializable;
import java.util.Calendar;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import javax.persistence.Transient;
import javax.persistence.UniqueConstraint;
import javax.persistence.Version;

import org.hibernate.annotations.Generated;
import org.hibernate.annotations.GenerationTime;

@Entity
@Table(name = "pad_movPersonal", uniqueConstraints={@UniqueConstraint(columnNames =
{"folio","personaAplica"})})
public class MovimientoPersonalProceso implements IEntidadGenerica,
		Serializable {

	/**
	 * 
	 */
	private static final long serialVersionUID = 5947725875958027493L;

	private Long folio;
	private Long registroId;

	private String titulo;
	private Integer personaCreador;
	private Calendar fechaCreacion;
	private String tipoMovimiento;
	private Integer personaAplica;
	private String comentario;
	private String estado;
	private Calendar fechaAplica;
	private Integer actividadActual;
	private Calendar fechaActividadActual;
	private Integer actividadInicial;

	@Column
	public Long getRegistroId() {
		return registroId;
	}

	public void setRegistroId(Long registroId) {
		this.registroId = registroId;
	}

	@Column
	public String getTitulo() {
		return titulo;
	}

	public void setTitulo(String titulo) {
		this.titulo = titulo;
	}

	@Column
	public Integer getPersonaCreador() {
		return personaCreador;
	}

	public void setPersonaCreador(Integer personaCreador) {
		this.personaCreador = personaCreador;
	}

	@Version
	@Temporal(TemporalType.TIMESTAMP)
	@Column
	public Calendar getFechaCreacion() {
		return fechaCreacion;
	}

	public void setFechaCreacion(Calendar fechaCreacion) {
		this.fechaCreacion = fechaCreacion;
	}

	@Column
	public String getTipoMovimiento() {
		return tipoMovimiento;
	}

	public void setTipoMovimiento(String tipoMovimento) {
		this.tipoMovimiento = tipoMovimento;
	}

	@Override
	@Column
	public Integer getPersonaAplica() {
		return this.personaAplica;
	}

	@Override
	public void setPersonaAplica(Integer personaAplica) {
		this.personaAplica = personaAplica;

	}

	@Override
	public void setComentario(String comentario) {
		this.comentario = comentario;

	}

	@Transient
	@Override
	public String getComentario() {
		return this.comentario;
	}

	@Override
	public void setEstado(String estado) {
		this.estado = estado;
	}

	@Override
	public String getEstado() {
		return this.estado;
	}

	@Column
	@Temporal(TemporalType.TIMESTAMP)
	public Calendar getFechaAplica() {
		return fechaAplica;
	}

	public void setFechaAplica(Calendar fechaAplica) {
		this.fechaAplica = fechaAplica;
	}

	@Override
	@Column
	public Integer getActividadActual() {
		return this.actividadActual;
	}

	@Override
	public void setActividadActual(Integer actividadActual) {
		this.actividadActual = actividadActual;

	}

	@Override
	@Generated(GenerationTime.ALWAYS)
	@Temporal(TemporalType.TIMESTAMP)
	@Column
	public Calendar getFechaActividadActual() {
		return fechaActividadActual;
	}

	@Override
	public void setFechaActividadActual(Calendar fechaActividadActual) {
		this.fechaActividadActual = fechaActividadActual;
	}

	@Column
	@Id
	public Long getFolio() {
		return folio;
	}

	public void setFolio(Long folio) {
		this.folio = folio;
	}

	@Override
	@Column
	public Integer getActividadInicial() {
		return this.actividadInicial;
	}

	@Override
	public void setActividadInicial(Integer actividadInicial) {
		this.actividadInicial = actividadInicial;
	}


}
